from flask_sqlalchemy import SQLAlchemy
from flask_login import LoginManager
from sqlalchemy.orm import DeclarativeBase


class Base(DeclarativeBase):
    """
    SQLAlchemy 2.0要求的声明式基类
    用于替代旧版本中的db.Model基类
    """
    pass


# 创建SQLAlchemy扩展实例
# model_class参数指定所有模型的基类
# 这是SQLAlchemy 2.0的新特性，使模型定义更加清晰
db = SQLAlchemy(model_class=Base)

# 创建Flask-Login扩展实例
# 用于处理用户会话管理，包括登录、登出、记住我等功能
login_manager = LoginManager()